# str1="sz,18,180"
# infos=str1.split(",")
# print(infos)

# l=['sz','18','180']
# l[0]
# l[1]
# l[2]
#
# t=('sz','18','180')
# t[0]
# t[1]
# t[2]

# person={"name":"sz","age":18}
# # print(person,type(person))
# print(person["name"])
# print(person["age"])

# d=dict.fromkeys("abc",666)
# d={1:2,2:3}.fromkeys("abc",666)

# d=dict.fromkeys([1,2,3],666)
# print(d)

#key不能重复  key必须是任意不可变类型

# d={1:"a",2:'b',1:"c"}#key重复的话，后面的会覆盖前面的
# print(d)

# d={[1,2,3]:"123"}
# print(d)

# num=10
# print(id(num))
#
# num=20
# print(id(num))

# num=[1,2,3]
# print(num,id(num))
#
# num.append(4)
# print(num,id(num))

#key必须是任意不可变类型 可变：列表 字典 可变集合
                    #不可变：数值 布尔 字符串 元组

#增删查改 计算 判定
#增
#dic[key]=value
#     当key再原字典中不存在 即为新增操作

# d={"name":"sz","age":18}
# print(d,type(d),id(d))
#
# d["height"]=180
# print(d,type(d),id(d))


#删  #key必须存在
# d={"name":"sz","age":10}
# del d["age"]
# print(d)

#dic.pop(key[,default])

#删除指定的键值对，并返回对应的值
#如果key,不存在，那么直接返回给定的default值:
#不作删除动作
#如果没有给定默认值，则报错

# v=d.pop("age",66)
# print(v,d)

# v=d.pop("age1",666)
# print(v,d)

#dic.popitem()
#删除最后一个键值对(3.8以上不适用按升序排序后的第一个键值对)，并以元组的形式返回该键值对
#如果字典为空，则报错

# d={"name":"sz","age":10,"z":123}
# d={}
# result=d.popitem()
# print(result,d)

#dic.clear()
#删除字典内所有键值对
#返回None
#注意，字典对象本身还存在，只不过内容被清空
#注意和del的区别


# d={"name":"sz","age":10,"z":123}
# print(d.clear())
# print(d)
# del d#全部删除了
# print(d)

#改
#只能改值，不能改key
#修改单个键值对
#  dic[key]=value
#  直接设置，如果key不存在，则新增，存在则修改

#d={"name":"sz","age":18}
# print(d)
# d["age1"]=20
# print(d)


#批量修改键值对
# oldDic.update(newDic)
#根据新的字典，批量更新旧字典中的键值对
#如果旧字典没有对应的key 则新增键值对

# d={"name":"sz","age":18}
# d.update({"age":666,"adderss":"上海"})
# print(d)

#查
#方式1
#dic[key] #key不存在，会报错
# d={"name":"sz","age":18}
# print(d["age"])
# print(d[0])#error

#方式2
#dic.get(key[,default])
#如果不存在对应的key，则取给定的默认值default
#如果没有默认值，则为None
#但不会报错
#但是，原字典不会新增这个键值对
# d={"name":"sz","age":18,0:"666"}
# v=d.get("age1",12)
# print(v,d)

#方式3
#dic.setdefault(key[,default])
#获取指定key对应的值
#如果key不存在，则设置给定默认值，并返回该值 会新增
#如果默认值没给定 则用None代替

# d={"name":"sz","age":18,0:"666"}
# v=d.setdefault("age1",20)
#print(v,d)

#查
#dic.values()#获取所有的值
# d={"name":"sz","age":18,0:"666"}
# a=d.values()
# #dic.keys()#获取所有的键
# b=d.keys()
# #dic.items()#获取字典的键对值
# c=d.items()
#
# print(a,b,c)
# d["address"]=999
# print(d)
# print(a,b,c)
# # print(a[0])#error
# print(list(a))
# print(tuple(a))


# d={"name":"sz","age":18,"address":"SH"}
# # keys=d.keys()
# # for i in keys:
# #     print(i)
# #     print(d[i])
# d["xxx"]="000"
#
# keys=d.items()
# for k,v in keys:
#     print(k,v)


# d={"name":"sz","age":18,"address":"SH"}
#
# print(len(d))
#
# print("name" in d)
# print("sz" not in d)
